home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-03-22 | 1.7 KB | 57 lines |
- 100 CLS:PRINT TAB(10);"PRINT A CALENDAR FOR ANY YEAR SINCE 1582":PRINT
- 110 '
- 120 ' Judson D. McClendon
- 130 ' 844 Sun Valley Road
- 140 ' Birmingham, AL 35215
- 150 '
- 160 ' Compuserve 74415,1003
- 170 '
- 200 DEF FNDOW(M,D,Y)=(D+M+M+INT((M+1)*0.6)+Y+Y\4-Y\100+Y\400+1) MOD 7
- 210 DIM MON$(12),MAX(12),DOM(12),DOW(12)
- 220 FOR I=1 TO 12 :READ MON$(I) :NEXT
- 230 DATA " J A N U A R Y "," F E B R U A R Y "," M A R C H "
- 240 DATA " A P R I L "," M A Y "," J U N E "
- 250 DATA " J U L Y "," A U G U S T "," S E P T E M B E R"
- 260 DATA " O C T O B E R "," N O V E M B E R "," D E C E M B E R "
- 270 FOR I=1 TO 12 :READ MAX(I) :NEXT
- 280 DATA 31,28,31,30,31,30,31,31,30,31,30,31
- 300 INPUT "What year: ",YEAR
- 310 IF YEAR<100 THEN YEAR=YEAR+1900 ' Assume 20th century if not specified
- 320 IF YEAR<1582 THEN PRINT "Not valid before 1582" :GOTO 300
- 330 IF ((YEAR MOD 4)<>0) OR ((YEAR MOD 100)=0 AND (YEAR MOD 400)<>0) THEN 350
- 340 MAX(2)=29
- 350 PRINT :INPUT "How many copies";COPIES
- 400 FOR COUNT=1 TO COPIES
- 410 LPRINT :LPRINT
- 420 LPRINT TAB(27);"CALENDAR FOR THE YEAR";YEAR
- 430 LPRINT :LPRINT
- 500 FOR MM=1 TO 10 STEP 3
- 510 FOR MONTH=MM TO MM+2
- 520 LPRINT TAB((MONTH-MM)*24+6);MON$(MONTH);
- 530 NEXT
- 540 LPRINT :LPRINT
- 550 FOR MONTH=MM TO MM+2
- 560 LPRINT TAB((MONTH-MM)*24+6)"SU MO TU WE TH FR SA";
- 570 DAY=1 :GOSUB 900 :DOW(MONTH)=DOW :DOM(MONTH)=1
- 580 NEXT
- 590 LPRINT
- 600 FOR WEEK=1 TO 6
- 610 FOR MONTH=MM TO MM+2
- 630 WHILE DOM(MONTH)<=MAX(MONTH) AND DOW(MONTH)<7
- 640 LPRINT TAB((MONTH-MM)*24+DOW(MONTH)*3+6);"";
- 650 LPRINT USING "##";DOM(MONTH);
- 660 DOM(MONTH)=DOM(MONTH)+1
- 670 DOW(MONTH)=DOW(MONTH)+1
- 680 WEND
- 690 IF DOW(MONTH)>6 THEN DOW(MONTH)=0
- 700 NEXT
- 710 LPRINT
- 720 NEXT
- 730 LPRINT :LPRINT :LPRINT
- 740 NEXT
- 750 LPRINT CHR$(12);
- 760 NEXT
- 790 SYSTEM
- 900 IF MONTH<3 THEN DOW=FNDOW(MONTH+12,DAY,YEAR-1) ELSE DOW=FNDOW(MONTH,DAY,YEAR)
- 950 RETURN
-